Android 项目导出为 jar 包后调用外部资源的问题
转载请注明出处,点击此处 查看更多精彩内容
将一个项目导出为jar包
很简单,步骤:右键点击目标项目 --> 选择 Export... --> 选择 Java --> 选中 Jar file --> 点击 Next 按钮 --> 将勾选全部去掉只保留 src --> 下面有个框框可以选择导出路径 --> Finish。
- 如果项目中没有使用到资源(如图片、布局文件)直接导出即可。
- 如果有资源文件那么直接导出也不会报错。但是在使用的时候会报一些 id 找不到之类的错误。
本文将介绍几种项目导出为 jar 包后仍能调用资源的方式。
第一种:通过反射动态获取资源 id
参考另一篇文章:http://blog.csdn.net/u014165119/article/details/46302695
把原来的 R.id.××× 、R.layout.××× 等资源 id 获取方式改为 MResource.getViewIdByName(Context context, String name) 、MResource.getLayoutIdByName(Context context, String name) 等方式,之后正常导出 jar 包。使用 jar 包时把资源一起拷贝到新项目对应的位置即可。
第二种:使用 library 库的方式(1)
只需要把要封装 jar 包的项目改为 library,并在要使用 jar 包的项目中引用此项目,并把 library 中的 AndroidManifest.xml 文件中的内容添加到使用 library 的项目的 AndroidManifest.xml 文件中。
将普通Android项目变成library: 右键点击要变的项目 --> 选择 Properties --> 在弹出框的左上角选择 Android --> 勾选 Is Library 单选框 --> OK。
引用library: 右键点击要变的项目 --> 选择 Properties --> 在弹出框的左上角选择 Android --> 点击 Add... 按钮 --> 在弹出框中选中要使用的 library --> OK。
注意:这种方式使用起来比较简单,但是会暴露源码,如果要给其他公司使用就不行了。
第三种:使用 library 库的方式(2)
步骤:
- 把要封装
jar包的项目设置为library库(Is Library)。 - 将项目
Clean一次。步骤:工具栏点击Project--> 选择Clean...--> 选中项目 -->OK。 - 使用
Export导出jar包(只导出src目录下的源码)。 - 将导出的
jar文件复制到项目的libs文件夹下,并删除src下的源码。 - 在使用
library的项目中 引用library。 - 把
library中的AndroidManifest.xml文件中的内容添加到使用library的项目的AndroidManifest.xml文件中。
这种方式是 library 和 jar 包结合使用,既隐藏了源码,又简单方便。
注意: 使用第二、第三中方式时,布局文件等资源的名字在 library 库和引用 library 库的项目中不能有相同的。
